﻿using System.Collections;

namespace class12_哈希表
{
    internal class Program
    {
       


    
        static void Main()
        {
            // 创建一个哈希表实例
            Hashtable hashtable = new Hashtable();

            // 添加键值对
            hashtable.Add("apple", 10);
            hashtable.Add("banana", 20);
            hashtable.Add("cherry", 30);
            hashtable["date"] = 40; // 另一种添加方式

            // 访问元素
            Console.WriteLine("apple 的值: " + hashtable["apple"]);

            // 检查键是否存在
            if (hashtable.ContainsKey("banana"))
            {
                Console.WriteLine("哈希表包含 banana 键");
            }

            // 修改值
            hashtable["apple"] = 15;
            Console.WriteLine("更新后 apple 的值: " + hashtable["apple"]);

            // 遍历所有键
            Console.WriteLine("\n所有键:");
            foreach (var key in hashtable.Keys)
            {
                Console.WriteLine(key);
            }

            // 遍历所有值
            Console.WriteLine("\n所有值:");
            foreach (var value in hashtable.Values)
            {
                Console.WriteLine(value);
            }

            // 遍历所有键值对
            Console.WriteLine("\n所有键值对:");
            foreach (DictionaryEntry entry in hashtable)
            {
                Console.WriteLine($"键: {entry.Key}, 值: {entry.Value}");
            }

            // 删除元素
            hashtable.Remove("cherry");
            Console.WriteLine("\n删除 cherry 后的哈希表:");
            foreach (DictionaryEntry entry in hashtable)
            {
                Console.WriteLine($"键: {entry.Key}, 值: {entry.Value}");
            }

            // 检查哈希表的大小
            Console.WriteLine("\n哈希表的大小: " + hashtable.Count);

            // 清空哈希表
            hashtable.Clear();
            Console.WriteLine("清空后哈希表的大小: " + hashtable.Count);
        }
    }
}

